﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sistema.Modelo;
using Sistema.Dao;
using System.Data.SqlClient;
using Sistema.Visao.Pessoa.Cliente;
using Sistema.Visao.Pessoa.Endereço;

namespace Sistema.Visao.Pessoa.Bairro
{//abre o namespace
    public partial class formBairro : Form
    {//abre o form
        //variaveis globais
        BairroMod mod = new BairroMod();// variavel da classe modelo
        BairroDao dao = new BairroDao();// variavel da classe dao
        string bairro;
        int codigoBairro,linha,codCidade,qualForm;
        Boolean tipo,op= true;//opcão de cadastro e alteração
        dataEndereco form;
        formCliente formCli;
        
        //construtor padrão
        public formBairro()
        {
            InitializeComponent();
        }


        //contrutor formBairro licando com dataendereco
        public formBairro(dataEndereco addEndereco, Boolean opcao,int formEscolha)
        {
            InitializeComponent();
            form = addEndereco;
            op = opcao;
            qualForm = formEscolha;
        }

        //construtor lincado com formCliente
        public formBairro(formCliente clienteEndereco, Boolean opcao, int formEscolha)
        {
            InitializeComponent();
            formCli= clienteEndereco;
            op = opcao;
            qualForm = formEscolha;
        }

       
        public void pegadados()
        {//abre o metodo pegadados


              if (dgBairros.RowCount == 0)//confere se o grid esta vazio
            {//abre o if
                
                //se a tabela estiver vazia exibir label com msg e desabilitar botoes
                cbTipoPesquisa.Enabled = false;
                tbCampoPesquisar.Enabled = false;
                btPesquisar.Enabled = false;
                btAdicionar.Enabled = false;
                lbMsg.Visible = true;
                dgBairros.Visible = false;
            }//fecha o if
            else
            {//abre o else
                //se nao pega dados da tabela e habilita botoes
                cbTipoPesquisa.Enabled = true;
                tbCampoPesquisar.Enabled = true;
                btPesquisar.Enabled = true;
                btAdicionar.Enabled = true;
                dgBairros.Visible = true;
                lbMsg.Visible = false;
                //pega valores da grid
                linha = dgBairros.CurrentRow.Index;
                bairro = dgBairros.Rows[linha].Cells[2].Value.ToString();
                codigoBairro = Convert.ToInt16(dgBairros.Rows[linha].Cells[0].Value.ToString());//pegando codigo para realizara alteraçao
                codCidade = Convert.ToInt16(dgBairros.Rows[linha].Cells[1].Value.ToString());

            }//fecha o else
        }//fecha o pegadados

        public void AtualizarGrid(int Selecao, String Busca)//MEtodo para carregar o data Grid atraves de coneção com o banco utilizando a camada dao
        {//abre o atualizagrid

            dao.SelecionarBairro(Busca, Selecao);
            SqlDataAdapter i = dao.getSelect();
            DataTable da = new DataTable();
            i.Fill(da);
            dgBairros.DataSource = da;
             //altera o nome dos campos da coluna
            dgBairros.Columns[0].HeaderText = "Código";
            dgBairros.Columns[2].HeaderText = "Bairros";
            //define o tamanho das colunas do grid
            dgBairros.Columns[0].Width = 50;
            dgBairros.Columns[2].Width = 400;
            //colocando os valores da coluna data_de_cadastro invisivel no grid
            dgBairros.Columns[1].Visible = false;
            dgBairros.Columns[3].Visible = false;
           
        }//fecha o atualizagrid



        private void formBairro_Load(object sender, EventArgs e)
        {//abre o load
            if (op == true)
            {//abre o if 
                AtualizarGrid(0, "");
                pegadados();
                cbTipoPesquisa.SelectedIndex = 0;
                btAdicionar.Visible = false;
            }//fecha o if
            else
            {//abre o else

                AtualizarGrid(0, "");
                pegadados();
                cbTipoPesquisa.SelectedIndex = 0;
                tsbMenu.Visible = false;
                btAdicionar.Visible = true;
            } //fecha o else
        }//fecha o load

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            //Chama o form para Cadastro
            tipo = true;
            dataBairro vai = new dataBairro(this, tipo);
            vai.Show();
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            //chama o form para alteração
            tipo = false;
            dataBairro vai = new dataBairro(this, bairro, tipo, codigoBairro, codCidade);
            vai.Show();
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //~evento cell click para quando o usuario clicar em uma linha da tabela chamar metodo
            pegadados();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (qualForm == 1)
            {

                //enviar dados para o form de cadastro de endereço
                form.cbBairro.Text = bairro;
                form.tbBairro.Text = bairro;
                form.cbCodigoBairro.Text = Convert.ToString(codigoBairro);
                this.Hide();
            }
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {

        }

        private void btPesquisar_Click(object sender, EventArgs e)
        {//abre o btpesquisar
            if (cbTipoPesquisa.SelectedIndex == 0)//Que contenha
            {//abre o if
                //chama o metodo para atualizar o grid passando como parametro o tipo da pesquisa e o valor da pesquisa
                AtualizarGrid(1, tbCampoPesquisar.Text);
            }//fecha o if
            else if (cbTipoPesquisa.SelectedIndex == 1)//Que inicie com
            {//abre o else if
                //chama o metodo para atualizar o grid passando como parametro o tipo da pesquisa e o valor da pesquisa
                AtualizarGrid(2, tbCampoPesquisar.Text);
            }//fecha o else if
            else if (cbTipoPesquisa.SelectedIndex == 2)//Que seja igual a
            {//abre o else if2
                //chama o metodo para atualizar o grid passando como parametro o tipo da pesquisa e o valor da pesquisa
                AtualizarGrid(3, tbCampoPesquisar.Text);
            }//fecha o else if2
        }

        private void btVoltar_Click(object sender, EventArgs e)
        {
            this.Hide();
        }//fecha o btPesquisar
    }
}
